using System;
using System.Collections.Generic;

namespace JGSY.CMS.LowCode.Platform.Application.DTOs
{
    /// <summary>
    /// 表单提交数据传输对象
    /// 用于传输表单提交的数据和状态信息
    /// </summary>
    public class FormSubmissionDto
    {
        /// <summary>
        /// 提交记录ID
        /// </summary>
        public long Id { get; set; }
        
        /// <summary>
        /// 表单ID
        /// </summary>
        public long FormId { get; set; }
        
        /// <summary>
        /// 表单名称
        /// </summary>
        public string? FormName { get; set; }
        
        /// <summary>
        /// 提交人ID
        /// </summary>
        public long SubmitterId { get; set; }
        
        /// <summary>
        /// 提交人姓名
        /// </summary>
        public string? SubmitterName { get; set; }
        
        /// <summary>
        /// 提交数据
        /// JSON格式的动态数据
        /// </summary>
        public Dictionary<string, object> Data { get; set; } = new();
        
        /// <summary>
        /// 提交状态
        /// </summary>
        public byte Status { get; set; }
        
        /// <summary>
        /// 提交时间
        /// </summary>
        public DateTime SubmittedAt { get; set; }
        
        /// <summary>
        /// 处理人ID
        /// </summary>
        public long? ProcessorId { get; set; }
        
        /// <summary>
        /// 处理人姓名
        /// </summary>
        public string? ProcessorName { get; set; }
        
        /// <summary>
        /// 处理时间
        /// </summary>
        public DateTime? ProcessedAt { get; set; }
        
        /// <summary>
        /// 处理备注
        /// </summary>
        public string? ProcessingNotes { get; set; }
        
        /// <summary>
        /// 提交者IP地址
        /// </summary>
        public string? IpAddress { get; set; }
        
        /// <summary>
        /// 用户代理
        /// </summary>
        public string? UserAgent { get; set; }
    }
}
